User Guide
Screen Layout
TimeBase records time-series data in streams. See Basic Concepts for details.
TimeBase Web Admin application screen is divided into two main sections: a streams panel and the main screen.
Streams Panel
The streams panel is located on the left-hand side of the screen.
Toolbar
Use the toolbar to quickly access the following options:
Create new stream or create new view | |
Query mode | |
Import from QSMSG | |
Import from CSV/text file | |
Flow | |
Order book | |
Generate QQL/DDL | |
Knowledge Base |
Search Filter
The Search filter is located at the top of the streams panel and allows you to quickly locate the streams and symbols available in your TimeBase instance.
To filter further, click Search Options where you can make the following selections:
- Use wildcards or Use regular expressions
- Match anywhere or Match exactly
- Reset to default
The search options work in the following way:
- Use wildcards: Search by entering a java-style wildcard.
- Use regular expressions: Search by entering a java-supported regular expression.
- Match anywhere: Searches for any occurrences of the input value.
- Match exactly: Searches by the exact input value.
- Reset to default: Resets the search options to the Match anywhere option.
Streams
The Streams tab displays all the streams in your TimeBase instance in lexicographic order.
Views
The Views tab displays all the QQL queries saved as Views.
info
For more information on Views, see the Materialized Views section.
For more information on performing actions with Views, see the Working with Views section.
Screen Controls
Hide Streams Panel
To hide the streams panel:
- Click the Hide menu icon.
To expand the streams panel:
- Click the Show menu icon.
Tab Synchronization
When enabled, the tab synchronization feature automatically matches your tab selections with the corresponding stream, symbol, or view in the streams panel.
To turn on tab synchronization:
- Select Enable tab synchronization.
To turn off tab synchronization:
- Select Disable tab synchronization.
Expand/Collapse Streams/Views
To expand or collapse an individual stream or view:
- Select the caret next to the stream/view name.
To collapse all expanded streams or views:
- Click Collapse All.
Context Menu
To open a context menu:
- Right-click a stream, symbol, or view name.
or - Hover over any stream, symbol, or view name and click the Open context menu icon.
The actions available in the context menu vary depending on whether you select a stream, symbol, or view.
info
For more information on actions available in the stream and symbol context menus, see the Stream Actions and Symbol Actions sections.
New Tabs
To open a new tab:
- Click on any stream, symbol, or view name directly.
or - Hover over any stream, symbol, or view name and click the Open in new tab icon.
All open tabs are displayed at the top of the main screen.
For information on managing tabs, see the Tabs section.
Main Screen
The main screen contains all the stream data, charts, and other information.
The main screen contains the content area - a dynamic grid that displays interactive data and can load new data.
Tabs
All open tabs are displayed at the top of the main screen.
To manage tabs:
- Click the Tabs list icon.
Use the Tabs List to:
- View all open tabs
- Navigate between tabs
- Close all open tabs at once
For information on how to open new tabs, see the New Tabs section.
Settings
Use the Global Settings to set:
- Date Format
- Time Format
- Time Zone (local time zone is detected and populated automatically)
Time Box
Some streams and views contain a time box above the dynamic data grid.
To change the Start From date:
- Use the Time Box input field and/or calendar icon to enter the date and time.
- Click Apply to apply the changes.
To cancel changes to the Start From date:
- Click Reset.
Export
QSMSG is Deltix's binary proprietary data format. You can export an entire stream's, symbol's, or view's data, including all stream messages, to a QSMSG formatted file. You can use this file to easily import stream data to another TimeBase instance.
To export stream, symbol, or view data to QSMSG format:
- Select the stream, symbol, or view whose data you want to export.
- Click Export.
- Set the export parameters.
- Click Export.
For information on exporting stream data to a CSV/text file, see the Export to CSV/Text File section.
For information on exporting symbol data to a CSV/text file, see the Export to CSV section.
Filter
To filter stream data:
- Select Filter.
- You can filter by symbol and/or message type.
- Click Clear to clear your selections or Close to confirm your changes.
Column Selection
To edit which columns appear in the table:
- Click the hamburger menu icon.
- Select or un-select column categories and individual columns from the list.
Column Widths
To edit column widths:
- Hover over the right edge of the column you want to resize and drag your mouse left or right.
or
- Click on a column's individual hamburger menu.
- Choose from one of the sizing options:
- Autosize This Column
- Autosize All Columns
- Reset Columns
- Reset this
Pinning Columns
Pinning a column to the left or right side of the screen allows you to scroll horizontally while always viewing the pinned column's data.
To pin a column:
- Click on a column's individual hamburger menu.
- Go to Pin Column > Pin left or Pin right.
To unpin a column:
- Click on the column's individual hamburger menu.
- Go to Pin Column > No pin.
Message Actions
To access message actions:
- Right-click any message in the content area.
The following message actions are available:
- Copy: Copy field text.
- Copy with headers: Copy field text along with the column header.
- Copy JSON: Copy a specific field in JSON format.
- Send Message: The Send Message pop-up window opens.
- Edit Message: The Edit Message pop-up window opens.
- View Order Book: Opens the order book in the message details panel for Level 2 messages.
Edit Message
The edit message pop-up window allows you to edit a message's properties. The properties available for editing vary by message.
To edit a message:
- Right-click any message in the content area > Edit.
View Order Book
You can view the order book of individual Level 2 messages.
To view the order book:
- Right-click any message in the content area > View Order Book.
Shortcuts
In the top right corner of the main screen, the following shortcuts are available:
Sign Out
To sign out of Web Admin:
- Click the Sign out icon.
Properties
To view a given stream, symbol, or view's properties:
- In the streams panel, click on the name of the stream, symbol, or view.
- Click the Properties icon.
Message Details
To view a given message's details:
- In the streams panel, click on the name of a stream, symbol, or view.
- In the content area, double click a message.
The message details panel opens.
You can switch between the following view modes:
- VIEW: Displays general information about the selected message.
- JSON: Displays the classes and fields of the selected message in a JSON format.
- ORDER BOOK: Displays the order book for the selected instrument and exchange at a particular time.
Description
To view a given stream, symbol, or view's description:
- In the streams panel, click on the name of the stream, symbol, or view.
- Click the Description icon.
The description panel opens.
Create a Stream
You can create a new stream in the TimeBase Web Admin application.
- Step 1: Create schema
- Step 2: Add classes
- Step 2.1: Add enums
- Step 3: Add fields
To create a new stream schema:
- In the toolbar, click Create > Create stream.
- Enter a stream key and storage version.Choose between storage version 5.0 (default) or version 4.0 that allows you to set a distribution factor.
- Click Start Creating.
A stream schema editor opens.
TimeBase is designed to work with records of different types. We call them messages. In object-oriented programing languages, messages can be seen as classes, each with a specific set of fields. In TimeBase, messages are arranged chronologically in streams.
Each stream has a unique stream schema, which declares what types of messages (including their hierarchy) a specific stream may store. This differs from traditional relational databases with a flat structure. The uniqueness of the stream schema means that identical classes defined by different stream schemas are in fact independent classes and are not treated as identical. The stream schema may as well include applicable enumerations.
To add a class:
- Click New Class.
- Enter the following information:
- Parent Class: As mentioned earlier, classes can form hierarchies on the schema level. Here, you can specify a parent class if applicable.
- Name: Give your class a unique name.
- Used: This flag indicates that the current class will be used in the stream schema.
- Title: Optional. You can specify class title along with class name.
- Click Add.
The new class is automatically added to the schema editor.
To add enums:
- Click New Enum.
- Enter the following information:
- Name: Give your enum a unique name.
- Title: Optional. You can specify a title for the enum along with the enum name.
- Click Add.
The new enum is automatically added to the schema editor.
To add fields to your class:
- Select a class by clicking on the row.
- Select one of the following options:
- New Non Static Field: Applies to only one instance of a class.
- New Static Field: Applies across all class instances. For a static field, you have to specify a static value.
You can change the field type later on.
- In the Add New Field pop-up prompt, enter a unique name.
- Enter the following information:
- Field Type: Specify either a static or non-static field type.
- For a static field, in Static Value, specify a static value.
- For a non-static field, in Relative To, select a relative field.
- Title: Optional. Specify a field title.
- Description: Optional. Give your field a description.
- Data Type: Choose a field data type. For a list of supported data types, refer here.
Further customizable options vary by data type.
- Field Type: Specify either a static or non-static field type.
- Click Create > Create to proceed or Revert to cancel your changes.
Your stream appears in the streams panel. To view or edit your schema, using the context menu, select Schema.
note
Revert works per field. Use it to undo all the unsaved changes made to a specific class field. Revert is disabled in case no changes have been made to a selected field.
Practical Example
For demonstration purposes lets take a MyBarMessage
class from deltix.samples.timebase.basics
sample package. In this example we will create a new stream with a sample class, create loader to write some demo data into the stream and view recorded data in Web Admin application.
- Click Create new stream in the toolbar.
- Enter Demo Stream Key in the dialog window and click Start Creating to open a stream schema editor.
- Click New Class in the schema editor and create
MyBarMessage
class. - Add new fields:
closePrice
,NON STATIC FLOAT IEEE64
openPrice
,NON STATIC FLOAT IEEE64
highPrice
,NON STATIC FLOAT IEEE64
lowPrice
,NON STATIC FLOAT IEEE64
volume
,NON STATIC FLOAT IEEE64
exchange
,NON STATIC CHAR
- Create a Loader to write data into a sample stream. Make sure to use your new stream name.
- Click View to see recorded messages.
info
To learn how to add messages manually, refer to the Send Message section.
Refer to the client APIs samples section for more information.
Import/Export JOSN File
You can find EXPORT TO JSON and IMPORT FROM JSON buttons in the stream schema editor screen when you start creating a new stream schema or edit an existing stream schema.
- EXPORT TO JSON: you can export a schema of any existing stream to a JSON file.
- IMPORT FROM JSON: you can use a JSON file with a pre-configured schema to create new stream/edit existing stream schema. In case it is applied to the existing stream, new schema from a JSON file will override the existing stream schema. The original stream schema will be restored if there are any errors in the JSON file.
tip
Make sure the JSON file you import is valid; otherwise, it will be rejected with an error. To pass the validation, a JSON file must include a state
key with arrays of classes
and enums
. Each array must include objects with name
, title
, and fields
array. In the fields
array there must be objects with name
, title
, and type
. In case a JSON file is missing any of those, it will be rejected with a corresponding error message.
A JSON file must be also valid from the business logic perspective, for example, it must have a valid hierarchy of classes. Always make sure your file is up to date with the most recent system updates.
You will get a JSON parse error when importing a not valid JSON or another file format.
Stream Actions
To view all available stream actions, open the context menu by right-clicking any stream name or clicking the menu icon next to the stream name.
View
To look at stream data:
- In the streams panel, right-click a stream.
The Context Menu opens. - Select View.
To open message details:
- Double click any record in the content area.
info
For more information on the actions available in the view, refer to the Message Actions section.
Reverse View
To display a stream's data with the latest timestamp at the top of the screen:
- In the streams panel, right-click a stream.
The Context Menu opens. - Select Reverse View.
Monitor
To view the latest records for each symbol in a given stream in real time:
- In the streams panel, right-click a stream.
The Context Menu opens. - Select Monitor.
Inspector
The Inspector option allows you to view real-time updates for a given stream's latest 100 records.
To use Inspector:
- In the streams panel, right-click a stream.
The Context Menu opens. - Select Inspector.
The latest messages are displayed at top of the list.
Chart
To see charts for a given trading instrument:
- In the streams panel, right-click a stream.
The Context Menu opens. - Click Chart and select a trading instrument.
Schema
To display stream schema details:
- In the streams panel, right-click a stream.
The Context Menu opens. - Click Schema.
You can also edit, import, and export stream schema. To learn more, refer to the Create Stream section.
Query
To run data queries:
- In the streams panel, right-click a stream.
The Context Menu opens. - Click Query.
A pre-populated query appears. You can use it to get all the messages from the corresponding stream.
SELECT * FROM "KRAKEN"
info
For more information about working with queries, refer to the Queries section.
For more information about the TimeBase Query Language, refer to the QQL Tutorials page.
Truncate
Truncating a stream will remove all data after a specified time.
To truncate a stream:
- In the streams panel, right-click a stream.
The Context Menu opens. - Select Truncate.
- In the pop-up window:
- Select any symbols you want to truncate.
- Set a date and time range for keeping data by either:
- Using the slider.
- Specifying a range in the Date field.
- Choose a timezone.
- Select Truncate.
- Select Ok.
Purge
Purging a stream removes all data that is older than a specified start date.
To purge stream data:
- In the streams panel, right-click a stream.
The Context Menu opens. - Select Purge.
- In the pop-up window, choose a time range for the purge by either:
- Using the slider.
- Specifying a range in the Date field.
- Select a Timezone and click Purge.
- Select Ok.
tip
The purge process can be aborted but it will not return to its initial state. All data that was removed prior to aborting the process will be lost.
Delete Stream
To remove a specific stream from the system:
- In the streams panel, right-click a stream.
The Context Menu opens. - Select Delete.
- Click Delete in the dialog window to confirm or Cancel to abort.
Change Name
To rename a specific stream:
- In the streams panel, right-click a stream.
The Context Menu opens. - Select Change name.
- Enter a new name in the Name field and click Rename.
Describe
To display a QQL code with stream schema description:
- In the streams panel, right-click a stream.
The Context Menu opens. - Select Describe.
The stream description pop-up appears.
You can use this as a template to create new streams or modify existing streams.
To learn more, refer to the General Controls section.
Send Message
You can use the Send Message option to manually add new messages to a given stream. The stream schema determines what message classes can be recorded to a specific stream. Each message class has an individual set of fields. For more information, see Basic Concepts.
To send a message:
- In the streams panel, right-click a stream.
The Context Menu opens. - Select Send message.
A pop-up form opens. - Choose either the UI or in JSON format for entering paramter values.
- Choose a writing mode:
- Append
- Insert
- Truncate
- Enter stream parameters.
- Click Send to submit the message or Revert to clear all entries.
tip
The available parameters are determined by the message class and may vary significantly for messages of different classes.
Export to QSMSG
QSMSG is Deltix's binary proprietary data format.
You can export an entire stream's data, including all stream messages, to a QSMSG formatted file. You can use this file to easily import stream data to another TimeBase instance.
To export to QSMSG:
- In the streams panel, right-click a stream.
The Context Menu opens. - Click Export to QSMSG.
- Set export parameters:
- Date range
- Date/Time format
- Export static fields
- Symbols
- Type
- Config (file type)
- Click Export.
Export to CSV/Text File
You can export an entire stream's data, including all stream messages, to a CSV or text file.
To export to a CSV or text file:
- In the streams panel, right-click the stream you want to import to.
The Context Menu opens. - Click Export to text file.
- Specify export parameters:
- Set the data time range.
- Select ALL symbols or specify symbols to be exported.
- Browse through stream schema classes and fields and select which ones you wish to export.
- Select the output CSV file configurations.
- Click Export.
Import from QSMSG
QSMSG is Deltix's binary proprietary data format.
To import from QSMSG:
- Open the Import from QSMSG pop-up window.
- In the toolbar, click Import from QSMSG.
or - In context menu, click Import from QSMSG.
- In the toolbar, click Import from QSMSG.
- Fill out the following fields:
- File: (Required.) Click Choose File and select the file you want to import.
- Stream: (Required.) Enter a stream name if not already chosen.
- Write Mode: Select a write mode from the following options.
- Append: Adds data into a stream that is not older than the last time (per symbol).
- Insert: Inserts data into a stream.
- Rewrite: Adds data into a stream and removes previous data by truncating using first message time (per symbol).
- Description
- Symbols
- Periodicity:
- Regular
- Irregular
- Static
- Storage version: (Only available for new streams.) Choose between storage version 5.0 (default) or version 4.0 that allows you to set a distribution factor.
- Time zone
- Range to import
- Start time & end time
- To edit the import schema, click Edit Schema.
or
To finish, click Import.
Import from CSV/Text File
To import from a CSV/text file:
- Set up the import using the following options:
- In the streams panel, right-click a stream to import to and select Import from text file.
- Click Add Files or Add Folders and select the file or folder you want to import.
- Click Next.
- Click Add Files or Add Folders and select the file or folder you want to import.
- In the toolbar, click Import from text file.
The Import from Text File pop-up opens.- Enter a stream name.
- Choose between storage version 5.0 (default) or version 4.0 that allows you to set a distribution factor.
- Click Add Files or Add Folders and select the file or folder you want to import.
- Click Next.
- In the streams panel, right-click a stream to import to and select Import from text file.
- Customize parameters according to your needs and click Next.
- Review your import and click Next.
- Select a write mode and an import range (optional).
- (Optional.) To download an import log file, click Full Log.
- To edit the import schema, click Edit Schema.
or
To finish, click Close.
Playback
The playback functionality copies data from a source stream to a target stream/topic, but changes message timestamps to the current time. This allows users to observe live data by replaying historical streams in real-time.
By default, you can run up to eight playback processes per Web Admin instance. You can change this amount in the configuration.
To set up a stream playback:
- In the streams panel, right-click the stream you want to copy data from.
The Context Menu opens. - Click Playback.
- Select one or more source streams. You may optionally set a time range.
- Select a target stream or topic.
- (Optional.) Select one or more of the following options:
- Speed: Changes the speed of the playback.
- Loop: Repeats the playback at the end of the stream.
- Permanent: When turned on, keeps playback running permanently, independent of user session timeout. When turned off, playback stops when user session times out.
Note: The default playback timeout is 60 seconds.
- Click Next.
The Playback pop-up window appears.
Additional Controls
Minimize
To minimize the Playback pop-up window:
Click the pin icon.
You can now control the playback options from the bottom left-hand corner of the screen.
Bring to Front
To return to the Playback pop-up window:
In the bottom left-hand corner of the screen, click the pop-out icon.
Change Speed
To change the speed of the playback:
In the drop-down, select one of the playback speed options.
Permanent
When turned on, Permanent keeps the playback running permanently, independent of user session timeout. When turned off, the playback stops when the user session times out. The default playback timeout is 60 seconds.
To keep the playback running permanently:
Toggle Permanent on.
Symbol Actions
To view the available symbol actions:
- Click the caret next to the stream name.
- Right-click the symbol name.
The context menu opens.
View
To view a symbol's data:
- In the streams panel, expand a stream by clicking the caret next to its name.
- Right-click the symbol name.
The context menu opens. - Click View
To view message details:
- Double click any record in the content area.
info
For more information on the available actions in the View, refer to the Message Actions section.
Reverse View
To display a symbol's data with the latest timestamp at the top of the screen:
- In the streams panel, expand a stream by clicking the caret next to its name.
- Right-click the symbol name.
The context menu opens. - Select Reverse View.
Monitor
The Monitor option allows viewing real-time updates for a specific symbol.
To use the Monitor option:
- In the streams panel, expand a stream by clicking the caret next to its name.
- Right-click the symbol name.
The context menu opens. - Select Monitor.
To view message details:
- Double click any record in the content area.
Inspector
The Inspector option allows you to view real-time updates for a given symbol's latest 100 records.
To use Inspector:
- In the streams panel, expand a stream by clicking the caret next to its name.
- Right-click the symbol name.
The context menu opens. - Select Inspector.
The latest messages are displayed at the top of the list.
To view message details:
- Double click any record in the content area.
Chart
Charts show the incoming market data and help verify that the market data aggregator is consuming and storing data properly. TimeBase Web Administrator charts are not designed to be used as a financial research tool.
info
Charts can display data for a single contract per panel.
The No chart data message notifies the user that charting is not supported for a particular selection.
The user receives a warning when the data within the selected stream is not capable of being charted and the chart function is selected.
To use the Charts tool:
- Expand a stream > right-click a symbol > select Chart.
Navigation
- Chart type: Select a chart type. For more information, see the Chart Types section.
- Levels: Filter for L1 or L2 data.
- Time range: Select a preset time interval or set a custom time range by clicking Custom Time Range.
- To move along the timeline once you've selected a range, click and drag the chart or use the left and right arrow keys on your keyboard.
- To zoom in and out in time, use your mouse to scroll in and out.
- Symbol: Select up to five symbols to compare chart data.
- Number of levels: Choose how many levels to display on each side of the market.
- If you are working with a bar chart, you will see an option to choose bar size instead.
- Track: View the chart in real time.
- Share Chart: Copies a URL to your clipboard.
- Exchanges: (Not shown.) If your stream includes market data from more than one exchange, a drop down list allows selecting all or any specific exchange to display on the chart.
To open View mode:
- Right-click the chart and select View data.
Chart Types
Price Chart
To view Level2 market data for a given instrument:
- In the chart type dropdown, select Prices_L2.
To choose how many levels to display on each side of the market:
- In the Levels drop-down, choose the number of levels.
Trades BBO
To view Level1 data and trades:
- In the chart type dropdown, select Trades_BBO.
Bar Chart
You can use several types of Bar Charts depending on the price type:
- Mid-Price
- Ask
- Bid
To modify the size of the bars:
- In the Bar Size drop-down, select a bar size.
Linear Chart
You can display time-series data for numeric fields in messages in a Line chart.
To display the Linear chart settings:
- Click the gear icon in the right-hand pane.
In the chart settings, you can enable and disable any attribute displayed on the chart.
Order Book
To display a pre-configured order book:
- Right-click any symbol in a stream and click Order Book.
To display an aggregated order book, add more streams and exchanges.
Query
To open a window where you can run QQL queries:
- Right-click any symbol in a stream and click Query .
In the query area of the screen, you will have a pre-populated query to get all the messages with the selected symbol from the corresponding stream.
SELECT * FROM "KRAKEN" WHERE symbol == 'BTC/USD'
info
For more information about working with queries in this application, refer to the Queries section.
For more information about the TimeBase Query Language, refer to the QQL Tutorials section.
Change Name
To rename a symbol:
- Right-click the symbol name.
The context menu opens. - Select Change name.
- In the text field, enter a new name and click Rename.
Export to QMSG
You can export data for a given symbol to a file that uses Deltix's proprietary QSMG format.
Export to CSV
You can export data for a given symbol to a CSV file.
In the Export to CSV from, you can specify what exactly you would like to export, including:
- Set the data time range.
- Select ALL symbols or specify symbols to be exported.
- Browse through stream schema classes and fields and select which ones you wish to export.
- Select the output CSV file configurations.
Materialized Views
Overview
A materialized view is an object that contains the result of a QQL query. In TimeBase, we call it a View. The basic principle is that you can extract data via a QQL query from one stream and save it in a dedicated stream, which will get updated along with the data in the source stream.
You can use Views to have custom data selections or data transformations from TimeBase streams. By creating a View, you basically pre-process your query once and use it afterwards as a ready dataset, which may significantly reduce processing time, unlike running the same query over and over again every time you need it.
As a result, you can keep your data extract in a dedicated stream and work with it the same way you work with any other TimeBase stream in the Web Admin application or via API.
Design Principles
Lifecycle
Views acquire different states throughout their lifecycle.
State | Description |
---|---|
CREATED | A newly-created stream acquires this state. |
PROCESSING | This state indicates that the query is currently under processing by the server. On the UI, it is indicated by the loading icon next to the name of the View. |
IDLE | A View acquires this state when not in PROCESSING and is waiting for updates in the source stream. |
FAILED | A View acquires this state when there's an error in the source stream or any other error occurs while processing the QQL query. |
COMPLETED | A View that does not draw data from a stream acquires this state once the QQL query is finalized. |
REMOVED | Deleted Views acquire this state. |
Data Handling
Views operate in a so-called live mode when they query data from TimeBase streams. In this case, new data (QQL query output) is added to the target stream of the View with every new message that comes to the source stream. Naming for target streams uses the following pattern: "VIEW_NAME#view#"
.
info
When a View does not draw data from any stream, we say that it is not operating in live mode. Its QQL query is processed once, the results are written into the target stream, and the View acquires a COMPLETED state.
There is a system stream, views#
, that is not available on the UI but accessible via the TimeBase API, where all metadata, states, errors, QQL query and other information about each View is recorded.
Processing Views
You can configure the server to assign dedicated threads to process Views. Workers that process Views are evenly distributed among all the assigned threads.
There are two ways to configure dedicated threads to process Views:
Add the JAVA system property:
-Dviews.processor.thread-pool-size=8
Configure the
application.yaml
:views:
processor:
thread-pool-size: 8 # default is 4
info
The default value = 4.
Workers that process Views take up processing resources on your machine as they open cursors and loaders, create streams, and record data. This gets even more important when it comes to Views operating in live mode.
tip
Keep in mind that the number of active views directly affects the performance of the entire application.
Working with Views
Views are located in the streams panel, in a dedicated Views tab.
To perform an action on a given View:
- Right-click the View name.
The context menu opens.
To learn more about the available actions, refer to the stream actions and symbol actions sections.
Create
There are two ways to create Views:
- In the main toolbar
- In query mode
Create View
To create a view:
- Click Create > Create view.
- Give the view a name.
- Enter your QQL query.
- Choose whether you want to create a live view.
- Click Create View.
Delete
To delete a view:
- Right-click the View name.
The context menu opens. - Click Delete View.
The view is deleted.
View Details
To explore a view's details, use the following shortcuts:
- Properties: Displays View properties such as stream name, state, last timestamp and a QQL query.
- Message details: Displays message details such as type, timestamp, symbol, packageType, and more.
- Description: Opens a View description. You can switch between the QQL query and stream schema descriptions, which you can copy and use to create other streams.
Examples
Views represent data extracted via a QQL query from other TimeBase streams. In this section, we show how to create streams using various data.
Bars
In this example, we create a View for an extract from the COINBASE stream, with price bars based on L2 data from COINBASE.
Click Query Mode.
A new tab where you can run QQL queries opens.Select price data from bar messages for BTC/USD by running the following QQL query:
WITH entries[this is TradeEntry] as 'entries'
SELECT
first{}(entries[0].price) as 'open',
last{}(entries[-1].price) as 'close',
max{}(max(entries.price)) as 'high',
min{}(min(entries.price)) as 'low'
TYPE "deltix.timebase.api.messages.BarMessage"
FROM "COINBASE"
OVER TIME(1m)
WHERE symbol == 'BTC/USD' AND notEmpty(entries)Click Create View and name it COINBASE_BARS.
In the streams panel, go to the Views tab> type COINBASE in the search field to locate your new View > click it to display data.
(Optional.) In the shortcuts, click d to view a description and see the QQL query you used to create this View.
To visualize the data aggregated by our View in a bar chart, right-click the View's name > Chart.
Indicators
In this example, we create a View for an extract from the COINBASE stream, with financial indicators based on L2 data from the COINBASE exchange.
Click Query Mode
A new tab where you can run QQL queries opens.Calculate various financial indicators for BTC/USD by running the following QQL query:
WITH entries[this is TradeEntry] as 'entries',
sum(entries.price * entries.size) / sum(entries.size) as 'avgPrice',
bollinger{}(avgPrice) as 'bollinger'
SELECT
avgPrice,
sma{timePeriod: 1h}(avgPrice) as 'sma-1h',
cma{}(avgPrice) as 'cma',
ema{period: 14}(avgPrice) as 'ema-14',
bollinger.upperBand,
bollinger.middleBand,
bollinger.lowerBand
FROM coinbase
OVER TIME(1m)
WHERE symbol == 'BTC/USD' AND notEmpty(entries)Click Create View and name it COINBASE_IND.
In the streams panel, go to the Views tab > type COINBASE in the search field to locate your new View > click it to display data.
(Optional.) In the shortcuts, click d to view a description and see the QQL query you used to create this View.
To visualize the data aggregated by our View in a line chart, right-click the View's name > Chart.
Queries
The TimeBase Web Admin application allows querying stream data using TimeBase's proprietary data query language QQL.
To open a query tab, use one of the following options:
You can open more than one Query tab at the same time and run different queries with different settings in each of them.
As you type in your query text, the query editor offers autocomplete options and formatting hints. To see the available options:
- Click Ctrl + Space anywhere in the query line.
To view stream details in a JSON format:
- Double click any field in the query output area.
Query Modes
The query modes include:
- Run: Run a QQL query.
- Live: Create a subscription to the latest data, starting from the query timestamp.
- Monitor: View your query execution in real-time.
Recent Queries
To access all the queries that you have recently created:
- Click Recent Queries
Export
To export your query results to QSMSG format:
- Click Export to QSMSG.
To export your query results to CSV format:
- Click the down caret.
- Click Export to CSV.
Create View
To create a View based on your QQL query:
- Enter a QQL query in the text area.
- Click Create View > give it a Name > click Create.
You can now access the View in the Views tab.
To learn more about materialized views in TimeBase, refer to the Materialized Views section.
Share Query
To share your current query via URL:
- Click Share Query.
Errors
In case of an error, the corresponding query elements are highlighted in red right in the query text and the user receives an error message.
To stop any running query:
- Click Cancel.
info
For more information about QQL and all the supported features, refer to the QQL Tutorials document.
Order Book
The Order Book is an aggregation of market data from one or several exchanges for a selected trading instrument.
The TimeBase Web Admin allows you to view the Order Book and a Market Depth Chart on the same screen The Market Depth Chart gives a quick glimpse into supply (Ask) and demand (Bid) on the market by showing the available buy/sell volumes at/above/below each price level.
There are several ways to access the order book:
- To view a dynamic order book in a new tab, use the toolbar or symbol actions options.
- To view a static order book, access it via the message details panel.
Toolbar
To access the order book via the toolbar:
- Click the Order book icon.
To populate the order book with data:
- Select at least one stream and the symbol (trading instrument) you want to display the order book for.
Using the Exchanges filter, you can enable and disable the exchanges you want to build order book for.
Symbol Actions
To view a pre-configured order book for a selected stream and symbol:
- Right-click any symbol in a stream and click Order Book.
To display an aggregated order book, add more streams and exchanges.
Message Details Panel
To view the order book in the message details panel:
- Open the message details panel using one of the following options:
- Message details shortcut
- Double-click any message in the view
- content area context menu
- Click Order Book.
Viewing the order book in the message details panel results in a static order book.
To view a dynamic order book, use either the toolbar or symbol actions options.
Flow
The Flow feature visualizes the flow of data between streams and applications.
Applications labels are highlighted pink and stream labels are highlighted blue.
To customize the visualization, choose from the following options:
- Topology: Changes the layout of the connections between applications and streams.
- TREE
- STAR
- By MPS (Messages Per Second): Filters connections according to their rate of traffic.
- Show All
- More (than a given number)
- Less (than a given number)
- Equal (to a given number)
- Filter: Isolates one or more streams or applications in the visualization.
- Reset Layout
To see the rate of flow of the incoming/outgoing data:
- In the visualization, click on a stream or application name.
Generate QQL
The Generate QQL (QuantQuery Language) feature allows you to create a QQL query using plain language.
To generate a QQL query:
- In the toolbar, click Generate QQL/DDL.
- Select a stream.
- Using plain language, describe the query you want to generate or its goal.
- Click Generate QQL.
The QQL query appears in the box below.
QQL Example
The example below creates a QQL query that shows trades from the BINANCE stream with size > 100.
Generate DDL
The Generate DDL (Data Definition Language) feature creates a DDL script to create or modify streams using plain language.
To generate a DDL query:
- In the toolbar, click Generate QQL/DDL.
- Toggle to DDL.
- Using plain language, describe the content you want the stream to have.
- Click Generate DDL.
The DDL appears in the box below.
DDL Example
The example below creates a DDL query for a stream that tracks food consumption.
Expand for full DDL script
CREATE DURABLE STREAM "food_consumption" (
ENUM "MealType" (
"BREAKFAST" = 0,
"LUNCH" = 1,
"SNACK" = 2,
"DINNER" = 3,
"SUPPER" = 4
);
CLASS "FoodItem" (
"name" VARCHAR NOT NULL,
"servingSize" FLOAT NOT NULL,
"calories" FLOAT NOT NULL,
"protein" FLOAT NOT NULL,
"carbs" FLOAT NOT NULL,
"fat" FLOAT NOT NULL,
"fiber" FLOAT NOT NULL,
"sugar" FLOAT NOT NULL
);
CLASS "FoodConsumption" (
"personName" VARCHAR NOT NULL,
"mealType" "MealType" NOT NULL,
"foodItems" ARRAY(OBJECT("FoodItem") NOT NULL) NOT NULL
);
)